var Fly = require("flyio/dist/npm/wx")
import store from "../store"
import util from "./util.js"
import {
	login
} from '@/api/bus.js';
var fly = new Fly;
const accountInfo = uni.getAccountInfoSync();
console.log(accountInfo.miniProgram.envVersion, "当前环境");
//地址仅为展示,开发时替换为自己的地址   也可以在这一步存入vuex ,当做全局变量
if (accountInfo.miniProgram.envVersion === 'develop') {
	//开发地址
	fly.config.baseURL = "http://192.168.31.159:8085/api"
} else if (accountInfo.miniProgram.envVersion === 'trial') {
	//体验地址
	fly.config.baseURL = "https://test.baidu.com"
} else if (accountInfo.miniProgram.envVersion === 'release') {
	//正式地址
	fly.config.baseURL = "https://www.baidu.com"

}
// 添加请求拦截器
fly.interceptors.request.use((request) => {
	if (request.body['not_loading']) {
		//不用展示加载  传参一个   not_loading:true
		delete request.body['not_loading']
	} else {
		uni.showLoading({
			title: '加载中'
		});
	}

	// 拿到本地储存的token
	let token = store.state.token;
	//需要登录才可以请求,未登录
	if (!request.body['user_pass'] && !token) {
		//控制弹窗数量只允许同时弹出一个
		if (!uni.getStorageSync('modalShow')) {
			uni.setStorageSync('modalShow', true)
			uni.showModal({
				title: '提示',
				content: '登陆后才能继续操作哦，是否前往？',
				confirmColor: '#598FE8',
				cancelText: "再看看",
				confirmText: "前往",
				success: function(res) {
					if (res.confirm) {
						//存取页面栈,登陆后回调
						// #ifdef MP-WEIXIN
						let url = util.getUrl()
						uni.setStorageSync("loginBack", url)
						//#endif
						uni.setStorageSync('modalShow', false)
						uni.switchTab({
							//登录页面地址
							url: "/pages/users/users"
						})
					} else if (res.cancel) {
						uni.setStorageSync('modalShow', false)
						uni.navigateBack()
					}
				}
			});
		}
		return false
		//需要登录才可以请求,已登录,自动携带token
	} else if (!request.body['user_pass']) {
			request.headers.Authorization = token;
	}
	//最后删除标记
	delete request.body['user_pass']
	return request
}, function(error) {
	uni.showToast({
		title: '发送请求失败!',
		icon: 'none'
	});
	// 对请求错误做些什么
	return Promise.reject(error)
})

// 添加响应拦截器
fly.interceptors.response.use((res) => {
	uni.hideLoading();
	if (res.data.message.code == 8 && store.state.token) {
		console.log("账号过期",store.state.token)
		login({
			'refresh_page': true
		});
	}
	return res.data
}, (error) => {
	if (error.engine.response.message.code !== 8) {
		uni.showToast({
			title: '加载数据失败!',
			icon: 'none'
		});
	}
	return Promise.reject(error)
})
export default fly
